home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / graphics / photop.zip / PHOTOPAT.MS_ / PHOTOPAT.MS
Text File  |  1994-09-25  |  6KB  |  216 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '*                        (Modified for PhotoPat)
  4. '**************************************************************************
  5.  
  6. '$DEFINE DEBUG  ''Define for script development/debugging
  7.  
  8. '$INCLUDE 'setupapi.inc'
  9. '$INCLUDE 'msdetect.inc'
  10.  
  11. ''Dialog ID's
  12. CONST WELCOME       = 100
  13. CONST ASKQUIT       = 200
  14. CONST DESTPATH      = 300
  15. CONST EXITFAILURE   = 400
  16. CONST EXITQUIT      = 600
  17. CONST EXITSUCCESS   = 700
  18. CONST OPTIONS       = 800
  19. CONST APPHELP       = 900
  20. CONST BADPATH       = 6400
  21.  
  22. ''Bitmap ID
  23. CONST LOGO = 1
  24.  
  25. GLOBAL DEST$        ''Default destination directory.
  26. GLOBAL OPTCUR$      ''Option selection from option dialog.
  27.  
  28. DECLARE SUB Install
  29. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  30. DECLARE FUNCTION ShowWindow Lib "USER.EXE" (i1%, i2%) AS Integer
  31.  
  32. INIT:
  33.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  34.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  35.  
  36.     SetBitmap CUIDLL$, LOGO
  37.     SetTitle "PhotoPat 1.5 Setup"
  38.     i% = ShowWindow(HwndFrame(),3) ' Maximize Window
  39.  
  40.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  41.     IF szInf$ = "" THEN
  42.         szInf$ = GetSymbolValue("STF_CWDDIR") + "PHOTOPAT.INF"
  43.     END IF
  44.     ReadInfFile szInf$
  45.  
  46.     OPTCUR$ = "1"
  47.     DEST$ = "C:\PHOTOIN"
  48.  
  49. WELCOME:
  50.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", 0, "")
  51.     IF sz$ = "CONTINUE" THEN
  52.         UIPop 1
  53.     ELSE
  54.         GOSUB ASKQUIT
  55.         GOTO WELCOME
  56.     END IF
  57.  
  58. GETPATH:
  59.     SetSymbolValue "EditTextIn", DEST$
  60.     SetSymbolValue "EditFocus", "END"
  61.  
  62. GETPATHL1:
  63.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  64.     DEST$ = GetSymbolValue("EditTextOut")
  65.  
  66.     IF sz$ = "CONTINUE" THEN
  67.         IF IsDirWritable(DEST$) = 0 THEN
  68.             GOSUB BADPATH
  69.             GOTO GETPATHL1
  70.         
  71.         END IF
  72.         UIPop 1
  73.     ELSEIF sz$ = "REACTIVATE" THEN
  74.         GOTO GETPATHL1
  75.     ELSEIF sz$ = "BACK" THEN
  76.         UIPop 1
  77.         GOTO WELCOME
  78.     ELSE
  79.         GOSUB ASKQUIT
  80.         GOTO GETPATH
  81.     END IF
  82.  
  83.  
  84.     Install
  85.  
  86.  
  87. QUIT:
  88.     ON ERROR GOTO ERRQUIT
  89.  
  90.     IF ERR = 0 THEN
  91.         dlg% = EXITSUCCESS
  92.     ELSEIF ERR = STFQUIT THEN
  93.         dlg% = EXITQUIT
  94.     ELSE
  95.         dlg% = EXITFAILURE
  96.     END IF
  97. QUITL1:
  98.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  99.     IF sz$ = "REACTIVATE" THEN
  100.         GOTO QUITL1
  101.     END IF
  102.     UIPop 1
  103.  
  104.     END
  105.  
  106. ERRQUIT:
  107.     i% = DoMsgBox("PhotoPat 1.5 Setup sources were corrupted", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  108.     END
  109.  
  110.  
  111.  
  112. BADPATH:
  113.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  114.     IF sz$ = "REACTIVATE" THEN
  115.         GOTO BADPATH
  116.     END IF
  117.     UIPop 1
  118.     RETURN
  119.  
  120.  
  121.  
  122. ASKQUIT:
  123.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  124.  
  125.     IF sz$ = "EXIT" THEN
  126.         UIPopAll
  127.         ERROR STFQUIT
  128.     ELSEIF sz$ = "REACTIVATE" THEN
  129.         GOTO ASKQUIT
  130.     ELSE
  131.         UIPop 1
  132.     END IF
  133.     RETURN
  134.  
  135.  
  136.  
  137. '**
  138. '** Purpose:
  139. '**     Builds the copy list and performs all installation operations.
  140. '** Arguments:
  141. '**     none.
  142. '** Returns:
  143. '**     none.
  144. '*************************************************************************
  145. SUB Install STATIC
  146.  
  147.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  148.     CreateDir DEST$, cmoNone
  149.  
  150.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  151.     WriteToLogFile ""
  152.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  153.     WriteToLogFile ""
  154.     WriteToLogFile "May have had to create the directory: " + DEST$
  155.     WriteToLogFile ""
  156.  
  157.     AddSectionFilesToCopyList "APP", SrcDir$, DEST$
  158.     CopyFilesInCopyList
  159.     ClearCopyList
  160.  
  161.     windir$ = GetWindowsDir()
  162.     AddSectionFilesToCopyList "WINDOWS", SrcDir$, windir$
  163.     CopyFilesInCopyList
  164.     ClearCopyList
  165.  
  166.     sysdir$ = GetWindowsSysDir()
  167.     AddSectionFilesToCopyList "SYSTEM", SrcDir$, sysdir$
  168.     CopyFilesInCopyList
  169.     ClearCopyList
  170.  
  171.     CreateProgmanGroup "Rainbow Scan", "", cmoNone
  172.     ShowProgmanGroup  "Rainbow Scan", 1, cmoNone
  173.     CreateProgmanItem "Rainbow Scan", "PhotoPat", MakePath(DEST$,"photopat.exe"), "", cmoOverwrite
  174.     CreateProgmanItem "Rainbow Scan", "ReadMe", "notepad.exe "+MakePath(DEST$,"readme.txt"), "", cmoOverwrite
  175.  
  176.     'Update the location of BROOKE.BMP
  177.     CreateIniKeyValue MakePath(windir$,"PHOTOPAT.INI"), "Recent File List","File1", MakePath(DEST$,"BROOKE.BMP"), cmoOverwrite
  178.     
  179.     'Remove other files:
  180.     RemoveIniKey MakePath(windir$,"PHOTOPAT.INI"),"Recent File List","File2",cmoNone
  181.     RemoveIniKey MakePath(windir$,"PHOTOPAT.INI"),"Recent File List","File3",cmoNone
  182.     RemoveIniKey MakePath(windir$,"PHOTOPAT.INI"),"Recent File List","File4",cmoNone
  183.     
  184.     
  185.     'Update the location of CRAYOLA.BMP
  186.     CreateIniKeyValue MakePath(windir$,"PHOTOPAT.INI"), "Palette","Palette file name",MakePath(DEST$,"CRAY64.PAL"),cmoOverwrite
  187.  
  188.     CloseLogFile
  189.  
  190. END SUB
  191.  
  192.  
  193.  
  194. '**
  195. '** Purpose:
  196. '**     Appends a file name to the end of a directory path,
  197. '**     inserting a backslash character as needed.
  198. '** Arguments:
  199. '**     szDir$  - full directory path (with optional ending "\")
  200. '**     szFile$ - filename to append to directory
  201. '** Returns:
  202. '**     Resulting fully qualified path name.
  203. '*************************************************************************
  204. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  205.     IF szDir$ = "" THEN
  206.         MakePath = szFile$
  207.     ELSEIF szFile$ = "" THEN
  208.         MakePath = szDir$
  209.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  210.         MakePath = szDir$ + szFile$
  211.     ELSE
  212.         MakePath = szDir$ + "\" + szFile$
  213.     END IF
  214. END FUNCTION
  215.  
  216.